Estoy comprobando algo con tablas de datos y esto es lo que tengo.
var array = []; var element = $('.Page').attr('data-numbers'); array.push(element); var api = this.api(), columns = '[' + array + ']'; alert(columns); for (var i = 0; i < columns.length; i++) { $('tfoot th').eq(columns[i]).html(api.column(columns[i], {page:'current'}).data().sum()); }ahora vienen mis números de datos: números de datos = '4,5,6,7,8';
Este es el error que obtengo
jquery-3.5.1.js:1677 Uncaught Error: Syntax error, unrecognized expression: [ at Function.Sizzle.error (jquery-3.5.1.js:1677:8) at Sizzle.tokenize (jquery-3.5.1.js:2377:11) at Sizzle.compile (jquery-3.5.1.js:2802:12) at Sizzle.select (jquery-3.5.1.js:2898:16) at Sizzle (jquery-3.5.1.js:894:9) at Function.Sizzle.matches (jquery-3.5.1.js:1602:9) at Function.jQuery.filter (jquery-3.5.1.js:3071:21) at winnow (jquery-3.5.1.js:3057:16) at jQuery.fn.init.filter (jquery-3.5.1.js:3101:26) at jquery.dataTables.min.js:141:258Dado que la variable de columnas se define como una cadena, y las columnas [0] son iguales al carácter '[', no puede usarla como un índice, por lo que da el error.
Por cierto, no puede convertir datos en una matriz simplemente agregando "[" y "]".
puedes probar esto
var array = []; var element = $('.Page').attr('data-numbers'); array.push(element); var api = this.api(), columns = array[0].split(',') alert(columns); for (var i = 0; i < columns.length; i++) { $('tfoot th').eq(columns[i]).html(api.column(columns[i], {page:'current'}).data().sum()); }